#ifndef COMMON_ASR_H
#define COMMON_ASR_H

#include <memory>
#include <string>

#include "../thrid/aip-cpp-sdk/speech.h"

namespace chat {
/**
 * @brief 使用百度云进行语音识别
 */
class BaiDuYunASRClient {
   public:
    BaiDuYunASRClient(const std::string& app_id, const std::string& app_key,
                      const std::string& secret_key);

    /**
     * @brief 进行语音识别
     * @param pcm[in]: 被识别的语音数据
     * @param err_message[out]: 错误原因
     * @return 识别出的文字内容
     */
    const std::string asr(const std::string& pcm, std::string* err_message);

    /**
     * @brief 获取pcm文件的数据
     * @param pcm_path[in]: pcm文件路径
     * @param file_content[out]: pcm数据
     */
    bool getPcmContent(const std::string& pcm_path, std::string* file_content);

   private:
    std::shared_ptr<aip::Speech> client_ = nullptr;
};

using BaiDuYunASRClientPtr = std::shared_ptr<BaiDuYunASRClient>;
}  // namespace chat

#endif  // COMMON_ASR_H